package collection;

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;

/**
 * toString() 和 equals() 对结合的集合元素进行比较
 */
public class CollectionDemo2 {
    public static void main(String[] args) {

        Collection c = new ArrayList();
        //  Collection c = new HashSet();
        c.add(new Point(1, 2));
        c.add(new Point(2, 3));
        /*
         * 集合重新了toString() 方法，返回的是字符串格式
         * [元素1.toString(),元素2.toString()......]  // 地址
         */
        System.out.println(c);

        c.add(new Point(1, 2));
        System.out.println(c);
        // 从结果当中可以看到，集合当中出现了重复的元素，因为我们new出来的对象的地址不相同，所以集合不认为它是重复的
        // 所以我们需要重写equals() 方法，让集合认为两个对象是重复的

        /*
        contains:包含
        boolean contains(Object o)  判断集合中是否包含指定的元素
        判断依据是equals() 方法  Point类重写后的  比较内容
        如果Point类中木有重写equals() 方法，那么就是地址比较，所以不会认为重复
         */

        Point p = new Point(1, 2);
        System.out.println(c.contains(p));
        System.out.println(c);

        /*
        remove:删除、移除
        boolean remove(Object o)  删除集合中指定的元素，成功删除返回true，否则返回false
        只会找到第一个equals() 为true的元素，然后删除
        如果集合中没有这个元素，那么返回false

         */
        System.out.println(c.remove(p));
        System.out.println(c);
    }
}
